// 10、使用ts完成sort方法，实现冒泡排序
import './exam'
// 11、正确定义sort方法
// 12、正确定义sort方法参数
// 13、正确定义sort方法返回值

// function sort(arr: number[]): number[] {
// 	for (let i = 0; i < arr.length; i++) {
// 		for (let j = 0; j < arr.length - i - 1; j++) {
// 			if(arr[j] < arr[j + 1]) {
// 				const temp = arr[j]
// 				arr[j] = arr[j + 1]
// 				arr[j + 1] = temp
// 			}
// 		}
// 	}
// 	return arr;
// }

// const s = sort([1, 2, 5, 7, 9, 5, 4, 3])
// console.log(s);

function find<T>(arr: T[], callback: (item: T, index: number) => boolean) {
	for (let i = 0; i < arr.length; i++) {
		const result = callback(arr[i], i);
		if (result) return arr[i]
	}
	return undefined
}



const s1 = [{ name: '张胜男', age: 16 }, { name: '李四', age: 10 }, { name: '王五', age: 22 }]

const result = s1.find((item, index) => {
	return index === 1
})

const result1 = find(s1, (item, index) => {
	return index === 1
})

// console.log(result, result1);


// 14、正确定义find方法
// 15、正确定义find方法参数
// 16、正确定义find方法返回值

// 17、合理使用泛型判断参数类型
// 18、合理使用类型校验 避免使用any

